<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>geevx</title>
<link rel="stylesheet" href="../../../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Boost.Numeric_Bindings">
<link rel="up" href="../driver_routines.html" title="Driver Routines">
<link rel="prev" href="geev.html" title="geev">
<link rel="next" href="gesdd.html" title="gesdd">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="geev.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../driver_routines.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="gesdd.html"><img src="../../../../images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx"></a><a class="link" href="geevx.html" title="geevx">geevx</a>
</h5></div></div></div>
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.prototype"></a><h6>
<a name="id871108"></a>
            <a class="link" href="geevx.html#boost_numeric_bindings.reference.lapack.driver_routines.geevx.prototype">Prototype</a>
          </h6>
<p>
            There are two prototypes of <code class="computeroutput"><span class="identifier">geevx</span></code>
            available, please see below. 
</p>
<pre class="programlisting"><span class="identifier">geevx</span><span class="special">(</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">balanc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">jobvl</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">jobvr</span><span class="special">,</span>
        <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">sense</span><span class="special">,</span> <span class="identifier">MatrixA</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">VectorWR</span><span class="special">&amp;</span> <span class="identifier">wr</span><span class="special">,</span> <span class="identifier">VectorWI</span><span class="special">&amp;</span> <span class="identifier">wi</span><span class="special">,</span>
        <span class="identifier">MatrixVL</span><span class="special">&amp;</span> <span class="identifier">vl</span><span class="special">,</span> <span class="identifier">MatrixVR</span><span class="special">&amp;</span> <span class="identifier">vr</span><span class="special">,</span> <span class="identifier">int_t</span><span class="special">&amp;</span> <span class="identifier">ilo</span><span class="special">,</span>
        <span class="identifier">int_t</span><span class="special">&amp;</span> <span class="identifier">ihi</span><span class="special">,</span> <span class="identifier">VectorSCALE</span><span class="special">&amp;</span> <span class="identifier">scale</span><span class="special">,</span> <span class="identifier">Scalar</span> <span class="special">&gt;,</span>
        <span class="identifier">VectorRCONDE</span><span class="special">&amp;</span> <span class="identifier">rconde</span><span class="special">,</span> <span class="identifier">VectorRCONDV</span><span class="special">&amp;</span> <span class="identifier">rcondv</span> <span class="special">);</span>
</pre>
<p>
          </p>
<p>
            
</p>
<pre class="programlisting"><span class="identifier">geevx</span><span class="special">(</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">balanc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">jobvl</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">jobvr</span><span class="special">,</span>
        <span class="keyword">const</span> <span class="keyword">char</span> <span class="identifier">sense</span><span class="special">,</span> <span class="identifier">MatrixA</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">VectorW</span><span class="special">&amp;</span> <span class="identifier">w</span><span class="special">,</span> <span class="identifier">MatrixVL</span><span class="special">&amp;</span> <span class="identifier">vl</span><span class="special">,</span> <span class="identifier">MatrixVR</span><span class="special">&amp;</span> <span class="identifier">vr</span><span class="special">,</span>
        <span class="identifier">int_t</span><span class="special">&amp;</span> <span class="identifier">ilo</span><span class="special">,</span> <span class="identifier">int_t</span><span class="special">&amp;</span> <span class="identifier">ihi</span><span class="special">,</span> <span class="identifier">VectorSCALE</span><span class="special">&amp;</span> <span class="identifier">scale</span><span class="special">,</span>
        <span class="identifier">Scalar</span> <span class="special">&gt;,</span> <span class="identifier">VectorRCONDE</span><span class="special">&amp;</span> <span class="identifier">rconde</span><span class="special">,</span> <span class="identifier">VectorRCONDV</span><span class="special">&amp;</span> <span class="identifier">rcondv</span> <span class="special">);</span>
</pre>
<p>
          </p>
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.description"></a><h6>
<a name="id871837"></a>
            <a class="link" href="geevx.html#boost_numeric_bindings.reference.lapack.driver_routines.geevx.description">Description</a>
          </h6>
<p>
            <code class="computeroutput"><span class="identifier">geevx</span></code> (short for $FRIENDLY_NAME)
            provides a C++ interface to LAPACK routines SGEEVX, DGEEVX, CGEEVX, and
            ZGEEVX. <code class="computeroutput"><span class="identifier">geevx</span></code> computes
            for an N-by-N complex nonsymmetric matrix A, the eigenvalues and, optionally,
            the left and/or right eigenvectors.
          </p>
<p>
            Optionally also, it computes a balancing transformation to improve the
            conditioning of the eigenvalues and eigenvectors (ILO, IHI, SCALE, and
            ABNRM), reciprocal condition numbers for the eigenvalues (RCONDE), and
            reciprocal condition numbers for the right eigenvectors (RCONDV).
          </p>
<p>
            The right eigenvector v(j) of A satisfies A * v(j) = lambda(j) * v(j)
            where lambda(j) is its eigenvalue. The left eigenvector u(j) of A satisfies
            u(j)<span class="bold"><strong>*H * A = lambda(j) * u(j)</strong></span><span class="bold"><strong>H where u(j)</strong></span>*H denotes the conjugate transpose
            of u(j).
          </p>
<p>
            The computed eigenvectors are normalized to have Euclidean norm equal
            to 1 and largest component real.
          </p>
<p>
            Balancing a matrix means permuting the rows and columns to make it more
            nearly upper triangular, and applying a diagonal similarity transformation
            D * A * D**(-1), where D is a diagonal matrix, to make its rows and columns
            closer in norm and the condition numbers of its eigenvalues and eigenvectors
            smaller. The computed reciprocal condition numbers correspond to the
            balanced matrix. Permuting rows and columns will not change the condition
            numbers (in exact arithmetic) but diagonal scaling will. For further
            explanation of balancing, see section 4.10.2 of the LAPACK Users' Guide.
          </p>
<p>
            The selection of the LAPACK routine is done during compile-time, and
            is determined by the type of values contained in type <code class="computeroutput"><span class="identifier">MatrixA</span></code>.
            The type of values is obtained through the <code class="computeroutput"><span class="identifier">value_type</span></code>
            meta-function <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">value_type</span><span class="special">&lt;</span><span class="identifier">MatrixA</span><span class="special">&gt;::</span><span class="identifier">type</span></code>. The dispatching table below illustrates
            to which specific routine the code path will be generated.
          </p>
<div class="table">
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.dispatching_of_geevx"></a><p class="title"><b>Table&#160;1.154.&#160;Dispatching of geevx</b></p>
<div class="table-contents"><table class="table" summary="Dispatching of geevx">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Value type of MatrixA
                    </p>
                  </th>
<th>
                    <p>
                      LAPACK routine
                    </p>
                  </th>
</tr></thead>
<tbody>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="keyword">float</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      SGEEVX
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="keyword">double</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      DGEEVX
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      CGEEVX
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      ZGEEVX
                    </p>
                  </td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.definition"></a><h6>
<a name="id872220"></a>
            <a class="link" href="geevx.html#boost_numeric_bindings.reference.lapack.driver_routines.geevx.definition">Definition</a>
          </h6>
<p>
            Defined in header <code class="computeroutput">boost/numeric/bindings/lapack/driver/geevx.hpp</code>.
          </p>
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.parameters_or_requirements_on_types"></a><h6>
<a name="id872260"></a>
            <a class="link" href="geevx.html#boost_numeric_bindings.reference.lapack.driver_routines.geevx.parameters_or_requirements_on_types">Parameters
            or Requirements on Types</a>
          </h6>
<div class="variablelist">
<p class="title"><b>Parameters</b></p>
<dl>
<dt><span class="term">MatrixA</span></dt>
<dd><p>
                  The definition of term 1
                </p></dd>
<dt><span class="term">MatrixB</span></dt>
<dd><p>
                  The definition of term 2
                </p></dd>
<dt><span class="term">MatrixC</span></dt>
<dd>
<p>
                  The definition of term 3.
                </p>
<p>
                  Definitions may contain paragraphs.
                </p>
</dd>
</dl>
</div>
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.complexity"></a><h6>
<a name="id872347"></a>
            <a class="link" href="geevx.html#boost_numeric_bindings.reference.lapack.driver_routines.geevx.complexity">Complexity</a>
          </h6>
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.example"></a><h6>
<a name="id872374"></a>
            <a class="link" href="geevx.html#boost_numeric_bindings.reference.lapack.driver_routines.geevx.example">Example</a>
          </h6>
<p>
            
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">bindings</span><span class="special">/</span><span class="identifier">lapack</span><span class="special">/</span><span class="identifier">driver</span><span class="special">/</span><span class="identifier">geevx</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">bindings</span><span class="special">;</span>

<span class="identifier">lapack</span><span class="special">::</span><span class="identifier">geevx</span><span class="special">(</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">z</span> <span class="special">);</span>

</pre>
<p>
          </p>
<p>
            this will output
          </p>
<p>
            
</p>
<pre class="programlisting"><span class="special">[</span><span class="number">5</span><span class="special">]</span> <span class="number">0</span> <span class="number">1</span> <span class="number">2</span> <span class="number">3</span> <span class="number">4</span> <span class="number">5</span>
</pre>
<p>
          </p>
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.notes"></a><h6>
<a name="id872659"></a>
            <a class="link" href="geevx.html#boost_numeric_bindings.reference.lapack.driver_routines.geevx.notes">Notes</a>
          </h6>
<a name="boost_numeric_bindings.reference.lapack.driver_routines.geevx.see_also"></a><h6>
<a name="id872684"></a>
            <a class="link" href="geevx.html#boost_numeric_bindings.reference.lapack.driver_routines.geevx.see_also">See
            Also</a>
          </h6>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
                Originating Fortran source files <a href="http://www.netlib.org/lapack/single/sgeevx.f" target="_top">sgeevx.f</a>,
                <a href="http://www.netlib.org/lapack/double/dgeevx.f" target="_top">dgeevx.f</a>,
                <a href="http://www.netlib.org/lapack/complex/cgeevx.f" target="_top">cgeevx.f</a>,
                and <a href="http://www.netlib.org/lapack/complex16/zgeevx.f" target="_top">zgeevx.f</a>
                at Netlib.
              </li></ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2002 -2009 Rutger ter Borg, Kre&#353;imir Fresl, Thomas Klimpel,
      Toon Knapen, Karl Meerbergen<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="geev.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../driver_routines.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="gesdd.html"><img src="../../../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
